Skip to content

feat(cli): iMe Core conclusion, TUI banner, and output cleanup - #2

Merged
n-papaioannou merged 3 commits into
mainfrom
feat/imecore-prompt-and-tui
Apr 28, 2026
Merged

n-papaioannou merged 3 commits into
mainfrom
feat/imecore-prompt-and-tui

Conversation

@n-papaioannou

@n-papaioannou n-papaioannou commented Apr 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Adds startup banner (logo + version + accent color) and per-category progress TUI from a new _branding module, gated by --quiet.
  • Replaces the post-run email-signup prompt with a styled iMe Core conclusion block (_imecore_prompt), removes the noisy Run-manifest and Inconclusive lines from stdout, and adds an "Access your Full Report here:" header above report paths.
  • Inlines the below-minimum annotation next to Overall Score, restyles the insufficient-evidence summary to "X out of Y tests have failed" wording, and prevents absolute fixture paths from poisoning report filenames.

Adds the startup banner (logo + version + accent color) and per-category
progress TUI from the new _branding module, gated by --quiet. Replaces the
post-run email-signup prompt with a styled iMe Core conclusion block and
removes the noisy Run-manifest and Inconclusive lines from stdout. Adds an
"Access your Full Report here:" header before the report paths and inlines
the below-minimum annotation next to Overall Score so the warning lives
with the score it describes. Restyles the insufficient-evidence summary
to "X out of Y tests have failed" wording for end-user clarity.
When --test was run with a fixture passed as an absolute path, the
single-test path in execute_tests stored the raw path string in
TestRunResult.fixture_name. save_reports then lower-cased it and used it
verbatim as part of the output filename, producing nested non-existent
directories like ifixai-results/ifixai-openrouter-/users/.../fixture.yaml.json
and crashing on write.

Use the loaded fixture's metadata.name instead — matching what the
strategic and full paths in runner.py already do. Add a defensive
_slugify helper in reports.py so any future caller passing a path can't
produce traversing filenames.
Ruff F401 surfaced this on the diagnostic CI matrix; the symbol is
imported from _branding but never referenced in the module.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@stefyi-4355 stefyi-4355 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@n-papaioannou
n-papaioannou merged commit 63f42d1 into main Apr 28, 2026
8 checks passed
@n-papaioannou
n-papaioannou deleted the feat/imecore-prompt-and-tui branch April 28, 2026 09:04
n-papaioannou added a commit that referenced this pull request Apr 28, 2026
This reverts commit 12e5eef.

Reason: Sebastian's iMe Core CLI feature (PR #2 on the public repo)
landed this morning and we want it preserved in the public release.
Restoring _branding.py, _imecore_prompt.py, the --quiet flag, and the
banner/conclusion calls in cli/run.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
n-papaioannou added a commit that referenced this pull request Apr 28, 2026
* sync: per-test layout restructure and public sanitization pass

Squashes 13 commits from diagnostic-dev/main into a single PR for the
public diagnostic repo.

Highlights:
- refactor: per-test folder layout (rename ifixai/tests/ -> ifixai/inspections/)
- refactor: strip iMe runtime branding from public CLI surface
- refactor: remove unused MemgraphRuleLoader
- chore: remove internal leaks from governance docs and module docstrings
- chore: untrack tests/ and scrub references from public-facing surface
- docs: README/CONTRIBUTING cleanup, fix stale paths, drop broken inspect CI job
- docs: keep info@ime.life as public contact, surface it in README
- fix: update import paths in public-side files for restructured layout

Source range: ifixai-ai/diagnostic-dev@63f42d1..92cbc1e

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Revert "refactor: strip iMe runtime branding from public CLI surface"

This reverts commit 12e5eef.

Reason: Sebastian's iMe Core CLI feature (PR #2 on the public repo)
landed this morning and we want it preserved in the public release.
Restoring _branding.py, _imecore_prompt.py, the --quiet flag, and the
banner/conclusion calls in cli/run.py.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
n-papaioannou added a commit that referenced this pull request Apr 30, 2026
Single squashed sync from ifixai-ai/diagnostic-dev to keep the public
release tree current with internal development.

Highlights
- RAG context integrity: B28 inspection rewritten to test prompt-injection
  resistance through retrieved context, with structural typed cases.
- Judge prompt isolation: SUT response moved out of the system prompt into
  a delimited user message to mitigate self-judging the response.
- Rubric cache: lazy-init the asyncio lock so multi-loop test runs don't
  collide.
- Concurrency governor: ramp waiters back up gradually after a 429 instead
  of releasing all parked coroutines in a thundering herd.
- Category summary: stop rendering "✓ all passed" when zero tests were
  scored; show "— no scored tests" instead.
- CLI polish: per-test folder layout, benchmark progress display, run
  summary terminology, PowerShell rendering fix.
- Restore iMe Core branding modules (_branding.py, _imecore_prompt.py)
  and rewire run.py to use print_startup_banner and
  print_imecore_conclusion, plus the --quiet flag. Public-side intent
  from PR #2 preserved.
- Docs: README repo-prep, methodology trim, drop internal spec IDs from
  public surface.

Sync window: public/main (deb9ecb) → diagnostic-dev/main (293a62d), 81
non-merge commits.
n-papaioannou added a commit that referenced this pull request Apr 30, 2026
Single squashed sync from ifixai-ai/diagnostic-dev to keep the public
release tree current with internal development.

Highlights
- RAG context integrity: B28 inspection rewritten to test prompt-injection
  resistance through retrieved context, with structural typed cases.
- Judge prompt isolation: SUT response moved out of the system prompt into
  a delimited user message to mitigate self-judging the response.
- Rubric cache: lazy-init the asyncio lock so multi-loop test runs don't
  collide.
- Concurrency governor: ramp waiters back up gradually after a 429 instead
  of releasing all parked coroutines in a thundering herd.
- Category summary: stop rendering "✓ all passed" when zero tests were
  scored; show "— no scored tests" instead.
- CLI polish: per-test folder layout, benchmark progress display, run
  summary terminology, PowerShell rendering fix.
- Restore iMe Core branding modules (_branding.py, _imecore_prompt.py)
  and rewire run.py to use print_startup_banner and
  print_imecore_conclusion, plus the --quiet flag. Public-side intent
  from PR #2 preserved.
- Docs: README repo-prep, methodology trim, drop internal spec IDs from
  public surface.

Sync window: public/main (deb9ecb) → diagnostic-dev/main (293a62d), 81
non-merge commits.
Sebabaian pushed a commit that referenced this pull request May 1, 2026
* sync: RAG integrity, concurrency hardening, CLI polish from dev

Single squashed sync from ifixai-ai/diagnostic-dev to keep the public
release tree current with internal development.

Highlights
- RAG context integrity: B28 inspection rewritten to test prompt-injection
  resistance through retrieved context, with structural typed cases.
- Judge prompt isolation: SUT response moved out of the system prompt into
  a delimited user message to mitigate self-judging the response.
- Rubric cache: lazy-init the asyncio lock so multi-loop test runs don't
  collide.
- Concurrency governor: ramp waiters back up gradually after a 429 instead
  of releasing all parked coroutines in a thundering herd.
- Category summary: stop rendering "✓ all passed" when zero tests were
  scored; show "— no scored tests" instead.
- CLI polish: per-test folder layout, benchmark progress display, run
  summary terminology, PowerShell rendering fix.
- Restore iMe Core branding modules (_branding.py, _imecore_prompt.py)
  and rewire run.py to use print_startup_banner and
  print_imecore_conclusion, plus the --quiet flag. Public-side intent
  from PR #2 preserved.
- Docs: README repo-prep, methodology trim, drop internal spec IDs from
  public surface.

Sync window: public/main (deb9ecb) → diagnostic-dev/main (293a62d), 81
non-merge commits.

* feat(scorecard): introduce inconclusive status and remove canned remediation

* fix(reporting): correct inconclusive predicate, scrub recommendation surfaces, fix footer

- _print_inconclusive_summary now predicates on TestStatus.INCONCLUSIVE
  per test rather than EvaluationMethod.JUDGE per evidence item. The
  prior predicate counted every judge-scored evidence item including
  passes, leading to a misleading "N evidence items" message.
- Lazy-init of _rubric_cache_lock in analytic_judge moved to module
  scope, removing a TOCTOU window where two coroutines could each see
  None and create independent locks. asyncio.Lock() at module scope is
  loop-agnostic on Python >=3.10 (the project minimum).
- Drop remaining recommendation/remediation surfaces from the report:
    * GRADE_INTERPRETATIONS verdict prose blockquote
    * Gap Analysis section (current/required/deficit/priority blocks)
    * Per-framework "Gap Details" subsections (NOT RUN coverage map)
    * JSON gaps[] and grade_interpretation fields
- Footer now distinguishes package version from methodology spec
  version (was rendering spec version as if it were software version).
- Category bar palette: orange/yellow/green/blue/pink.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(reporting): replace footer with iMe Core call-to-action

Replaces the version footer with the iMe Core marketing copy used
across the public surface. Drops the now-unused VERSION import.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(readme): add license, python, CI, inspections, and good-first-issue badges

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants